@Luminary
2年前 提问
1个回答

常用的软件保护技术有什么

安全侠
2年前

常用的软件保护技术有:

  • 代码混淆技术:代码混淆技术是一种用于对移动代码保护和软件知识产权保护的安全技术。可视为一种高效的编译技术,它将原程序转换成新的程序,新程序具有与原程序相同的外部行为,且代码的安全性能更强。

  • 软件加壳:软件加壳是用来保护软件不被非法修改或反编译的一种安全机制。加壳保护机制是利用特殊的算法,对编译后的文件(如EXE、DLL)里的数据进行压缩、加密,并且把解压算法、解密算法作为程序的外壳附加到被保护的程序中。当加载器加载程序到内存执行时,壳先于原始程序得到控制权,对原始程序解密、还原后,再把控制权交还给原程序,执行原程序的代码部分。加上外壳后,原程序代码在磁盘文件中一般是以加密的形式存在的,当执行时在内存中还原。程序加壳后不仅可以改变原程序的运行流程和特征,还可以有效改变原程序的静态特征[18],因此,可以有效地防止破解者对程序的非法修改,同时也可以防止程序被静态反编译。此外,加壳程序可以开发成独立的软件,对大的软件公司而言,开发独立、安全的加壳软件将大大节省软件保护的成本。加壳技术经过多年的发展,已经采用了很多不同的技术,如花指令、代码混淆、加密与压缩等。

  • 反破解技术:保护应用软件还有一个常用方法就是反破解技术。反破解技术不是单一的一种方法或手段,而是针对软件分析技术的一般流程,总结出通用的一个过程,整个过程可以分为对抗反编译、对抗静态分析、对抗动态调试和防止重编译4个步骤。

  • 序列号保护机制:俗称注册码。验证用户名和序列号之间的书写映射关系。